package com.us.util;

import java.util.regex.Pattern;

/**
 * 正则表达式的一些操作
 * 
 * @author monlyu
 */
public class RegexUtil {

    /**
     * 判断是否匹配日期
     * 
     * @since 2009-12-28
     */
    public static boolean isDate(String input) {
        if (StringUtil.isEmpty(input)) {
            return false;
        }
        return input.matches("\\d{1,4}-\\d{1,2}-\\d{1,2}");
    }

    /**
     * 判断是否匹配日期时间
     * 
     * @since 2009-12-28
     */
    public static boolean isDateTime(String input) {
        if (StringUtil.isEmpty(input)) {
            return false;
        }
        return input.matches("\\d{1,4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}");
    }

    /**
     * 判断是否为boolean类型
     * 
     * @since 2010-1-14
     */
    public static boolean isBol(String bool) {
        return bool.equalsIgnoreCase("true") || bool.equalsIgnoreCase("false");
    }

    /**
     * 判断是否为IP地址
     * 
     * @param str
     *        IP字符串
     * @author monlyu
     * @since 2010-1-27
     */
    public static Boolean isIpAddress(String str) {
        String regex = "(((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))";
        Pattern p = Pattern.compile(regex);
        return p.matcher(str).matches();
    }
}
